package com.ruoyi.interview.service.impl;


import com.ruoyi.common.exception.GlobalException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.interview.domain.IntervPostinv;
import com.ruoyi.interview.mapper.IntervPostinvMapper;
import com.ruoyi.interview.service.IIntervInfoService;
import com.ruoyi.interview.service.IIntervPostinvService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * 删除和更新岗位后，把所有info的变成未选择
 * 
 * @author ruoyi
 * @date 2022-10-08
 */

/**
 * IIntervPostinvService 实现类, 用于处理岗位信息, 用于面试信息的选择, 以及岗位信息的增删改查
 * */
@Service
public class IntervPostinvServiceImpl implements IIntervPostinvService
{
    /** 岗位信息的mapper */
    @Resource
    private IntervPostinvMapper intervPostinvMapper;
    /** 面试信息的service */
    @Autowired
    private IIntervInfoService intervInfoService;
    /**
     * 查询岗位
     * 
     * @param pId 主键
     * @return
     */
    @Override
    public IntervPostinv selectIntervPostinvByPId(Long pId)
    {
        return intervPostinvMapper.selectIntervPostinvByPId(pId);
    }

    /**
     * 查询列表
     * 
     * @param intervPostinv
     * @return
     */
    @Override
    public List<IntervPostinv> selectIntervPostinvList(IntervPostinv intervPostinv)
    {
        return intervPostinvMapper.selectIntervPostinvList(intervPostinv);
    }

    /**
     * 新增面试信息
     * 
     * @param intervPostinv 新增面试信息
     * @return 结果
     */
    @Override
    public int insertIntervPostinv(IntervPostinv intervPostinv)
    {
        intervPostinv.setCreateTime(DateUtils.getNowDate());
        return intervPostinvMapper.insertIntervPostinv(intervPostinv);
    }

    /**
     * 修改新增面试信息
     * 
     * @param intervPostinv 修改新增面试信息
     * @return 结果
     */
    @Override
    public int updateIntervPostinv(IntervPostinv intervPostinv)
    {
        intervPostinv.setUpdateTime(DateUtils.getNowDate());
        return intervPostinvMapper.updateIntervPostinv(intervPostinv);
    }

    /**
     * 批量删除新增面试信息
     * 
     * @param pIds 需要删除的新增面试信息主键
     * @return 结果
     */
    @Override
    public int deleteIntervPostinvByPIds(Long[] pIds)
    {
        int pid = intervInfoService.updateIntervPid(pIds);
        if (!(pid>0)){
            throw new GlobalException("删除失败");
        }
        return intervPostinvMapper.deleteIntervPostinvByPIds(pIds);
    }

    /**
     * 删除面试岗位（删除岗位后，把info表的pid改成0，也就是前端显示未选择状态）
     * @return 结果
     */
    @Override
    @Transactional
    public int deleteIntervPostinvByPId(Long pId) {
        return intervPostinvMapper.deleteIntervPostinvByPId(pId);
    }

    /** 根据岗位名查岗位id */
    @Override
    public Long selectPidByPName(String pName) {
        return intervPostinvMapper.selectIntervPostinvByPname(pName);
    }
}
